<HTML><HEAD>
<META NAME="description" CONTENT="Binary search trees; left child item is less than current item, right child item is greater">
<META NAME="names" CONTENT="binary_search_tree, tree">
<META NAME="legal" CONTENT="See notice at end of class.">
<META NAME="contents" CONTENT="generic">
<META NAME="access" CONTENT="cursor, membership">
<META NAME="representation" CONTENT="recursive, array">
<META NAME="keywords" CONTENT="Eiffel class">
<META NAME="license" CONTENT="Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)">
<META NAME="copyright" CONTENT="Copyright (c) 1984-2008, Eiffel Software and others">
<META NAME="source" CONTENT="Eiffel Software 356 Storke Road, Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com">
<META NAME="library" CONTENT="EiffelBase: Library of reusable components for Eiffel.">
<META NAME="keywords" CONTENT="Eiffel class">
<TITLE>binary_search_tree Flat contracts</TITLE></HEAD>
<BODY BGCOLOR="white">
<P ALIGN="CENTER">Automatic generation produced by ISE Eiffel</P>
<PRE><TABLE BORDER="1" ALIGN="CENTER"><TR><TD><A HREF="../class_list.html">Classes</A></TD><TD><A HREF="../cluster_list.html">Clusters</A></TD><TD><A HREF="../cluster_hierarchy.html">Cluster hierarchy</A></TD><TD><A HREF="binary_search_tree_chart.html">Chart</A></TD><TD><A HREF="binary_search_tree_links.html">Relations</A></TD><TD>Flat contracts</TD></TR></TABLE><B>indexing</B>
    description: "[
        Binary search trees; left child item is less than current item,
        right child item is greater
    ]"
    legal: "See notice at end of class."
    status: "See notice at end of class."
    names: binary_search_tree, tree
    representation: recursive, array
    access: cursor, membership
    contents: generic
    date: "$Date: 2008-05-24 02:24:07 +0200 (Sat, 24 May 2008) $"
    revision: "$Revision: 170 $"

<B>class</B> <B>interface</B>
    <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G -&gt; <A HREF="../base/comparable_flatshort.html">COMPARABLE</A>]


<B>create</B> 
    <A NAME="f_make"><A HREF="../base/binary_search_tree_flatshort.html#f_make">make</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Create single node with item </FONT>`v'<FONT COLOR="red">.</FONT>
        <B>require</B>
            v_not_void: v /= <B>Void</B>
        <B>ensure</B>
            item_set: <A HREF="../base/cell_flatshort.html#f_item">item</A> = v
            is_root: <A HREF="../base/tree_flatshort.html#f_is_root">is_root</A>
            is_leaf: <A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A>
</A>

<B>create</B> {<A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A>}
    <A NAME="f_make"><A HREF="../base/binary_tree_flatshort.html#f_make">bt_make</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Create a root node with value </FONT>`v'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A>
            node_item: <A HREF="../base/cell_flatshort.html#f_item">item</A> = v
            is_root: <A HREF="../base/tree_flatshort.html#f_is_root">is_root</A>
            is_leaf: <A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A>
</A>
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Initialization</FONT>

    <A NAME="f_make"><A HREF="../base/binary_tree_flatshort.html#f_make">bt_make</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Create a root node with value </FONT>`v'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A>
            node_item: <A HREF="../base/cell_flatshort.html#f_item">item</A> = v
            is_root: <A HREF="../base/tree_flatshort.html#f_is_root">is_root</A>
            is_leaf: <A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Access</FONT>

    <A NAME="f_child"><A HREF="../base/binary_tree_flatshort.html#f_child">child</A>: <B>like</B> <A HREF="../base/binary_search_tree_flatshort.html#f_parent">parent</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Child at cursor position</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            readable: <A HREF="../base/tree_flatshort.html#f_readable_child">readable_child</A>
</A>
    <A NAME="f_child_cursor"><A HREF="../base/binary_tree_flatshort.html#f_child_cursor">child_cursor</A>: <A HREF="../base/arrayed_list_cursor_flatshort.html">ARRAYED_LIST_CURSOR</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Current cursor position</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_child_index"><A HREF="../base/binary_tree_flatshort.html#f_child_index">child_index</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A></A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Index of cursor position</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>

    <A NAME="f_child_item"><A HREF="../base/tree_flatshort.html#f_child_item">child_item</A>: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Item in current child node</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            readable: <A HREF="../base/tree_flatshort.html#f_child_readable">child_readable</A>
</A>
    <A NAME="f_first_child"><A HREF="../base/binary_tree_flatshort.html#f_first_child">first_child</A>: <B>like</B> <A HREF="../base/binary_search_tree_flatshort.html#f_parent">parent</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Left child</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            is_not_leaf: <B>not</B> <A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A>
</A>
    <A NAME="f_generating_type"><A HREF="../base/any_flatshort.html#f_generating_type">generating_type</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Name of current object's generating type</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (type of which it is a direct instance)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            generating_type_not_void: <B>Result</B> /= <B>Void</B>
            generating_type_not_empty: <B>not</B> <B>Result</B>.<A HREF="../base/finite_flatshort.html#f_is_empty">is_empty</A>
</A>
    <A NAME="f_generator"><A HREF="../base/any_flatshort.html#f_generator">generator</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Name of current object's generating class</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (base class of the type of which it is a direct instance)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            generator_not_void: <B>Result</B> /= <B>Void</B>
            generator_not_empty: <B>not</B> <B>Result</B>.<A HREF="../base/finite_flatshort.html#f_is_empty">is_empty</A>
</A>
    <A NAME="f_has"><A HREF="../base/binary_search_tree_flatshort.html#f_has">has</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Does tree contain a node whose item</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> is equal to </FONT>`v'<FONT COLOR="red"> (object comparison)?</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT> <A HREF="../base/container_flatshort.html">CONTAINER</A>
            <B>True</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/container_flatshort.html">CONTAINER</A>
            not_found_in_empty: <B>Result</B> <B>implies</B> <B>not</B> <A HREF="../base/tree_flatshort.html#f_is_empty">is_empty</A>
</A>
    <A NAME="f_item"><A HREF="../base/cell_flatshort.html#f_item">item</A>: G</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Content of cell.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/cell_flatshort.html">CELL</A><FONT COLOR="red">)</FONT>

    <A NAME="f_last_child"><A HREF="../base/binary_tree_flatshort.html#f_last_child">last_child</A>: <B>like</B> <A HREF="../base/binary_search_tree_flatshort.html#f_parent">parent</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Right child</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            is_not_leaf: <B>not</B> <A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A>
</A>
    <A NAME="f_left_child"><A HREF="../base/binary_tree_flatshort.html#f_left_child">left_child</A>: <B>like</B> <A HREF="../base/binary_search_tree_flatshort.html#f_parent">parent</A></A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Left child, if any</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>

    <A NAME="f_left_item"><A HREF="../base/binary_tree_flatshort.html#f_left_item">left_item</A>: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Value of left child</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A>
            has_left: <A HREF="../base/binary_tree_flatshort.html#f_left_child">left_child</A> /= <B>Void</B>
</A>
    <A NAME="f_left_sibling"><A HREF="../base/binary_tree_flatshort.html#f_left_sibling">left_sibling</A>: <B>like</B> <A HREF="../base/binary_search_tree_flatshort.html#f_parent">parent</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Left neighbor, if any</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            is_not_root: <B>not</B> <A HREF="../base/tree_flatshort.html#f_is_root">is_root</A>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            is_sibling: <B>Result</B> /= <B>Void</B> <B>implies</B> <A HREF="../base/tree_flatshort.html#f_is_sibling">is_sibling</A> (<B>Result</B>)
            right_is_current: (<B>Result</B> /= <B>Void</B>) <B>implies</B> (<B>Result</B>.<A HREF="../base/tree_flatshort.html#f_right_sibling">right_sibling</A> = <B>Current</B>)
</A>
    <A NAME="f_parent"><A HREF="../base/binary_search_tree_flatshort.html#f_parent">parent</A>: ?<A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G]</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Parent of current node</FONT>

    <A NAME="f_right_child"><A HREF="../base/binary_tree_flatshort.html#f_right_child">right_child</A>: <B>like</B> <A HREF="../base/binary_search_tree_flatshort.html#f_parent">parent</A></A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Right child, if any</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>

    <A NAME="f_right_item"><A HREF="../base/binary_tree_flatshort.html#f_right_item">right_item</A>: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Value of right child</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A>
            has_right: <A HREF="../base/binary_tree_flatshort.html#f_right_child">right_child</A> /= <B>Void</B>
</A>
    <A NAME="f_right_sibling"><A HREF="../base/binary_tree_flatshort.html#f_right_sibling">right_sibling</A>: <B>like</B> <A HREF="../base/binary_search_tree_flatshort.html#f_parent">parent</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Right neighbor, if any</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            is_not_root: <B>not</B> <A HREF="../base/tree_flatshort.html#f_is_root">is_root</A>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            is_sibling: <B>Result</B> /= <B>Void</B> <B>implies</B> <A HREF="../base/tree_flatshort.html#f_is_sibling">is_sibling</A> (<B>Result</B>)
            left_is_current: (<B>Result</B> /= <B>Void</B>) <B>implies</B> (<B>Result</B>.<A HREF="../base/tree_flatshort.html#f_left_sibling">left_sibling</A> = <B>Current</B>)
</A>
    <A NAME="f_tree_item"><A HREF="../base/binary_search_tree_flatshort.html#f_tree_item">tree_item</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>): ?<B>like</B> <B>Current</B>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Node whose item is equal to </FONT>`v'<FONT COLOR="red"> (object_comparison)</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> otherwise default value.</FONT>
        <B>require</B>
            v_not_void: v /= <B>Void</B>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Measurement</FONT>

    <A NAME="f_arity"><A HREF="../base/binary_tree_flatshort.html#f_arity">arity</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Number of children</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT> <A HREF="../base/tree_flatshort.html">TREE</A>
            <B>True</B>
        <B>ensure then</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A>
            valid_arity: <B>Result</B> &lt;= <A HREF="../base/binary_tree_flatshort.html#f_child_capacity">child_capacity</A>
</A>
    <A NAME="f_child_capacity"><A HREF="../base/binary_tree_flatshort.html#f_child_capacity">child_capacity</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A> <B>is</B> 2</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Maximum number of children</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>

    <A NAME="f_count"><A HREF="../base/tree_flatshort.html#f_count">count</A>: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Number of items</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_max"><A HREF="../base/binary_search_tree_flatshort.html#f_max">max</A>: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Maximum item in tree</FONT>
        <B>ensure</B>
            maximum_present: <A HREF="../base/binary_search_tree_flatshort.html#f_has">has</A> (<B>Result</B>)
</A>
    <A NAME="f_min"><A HREF="../base/binary_search_tree_flatshort.html#f_min">min</A>: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Minimum item in tree</FONT>
        <B>ensure</B>
            minimum_present: <A HREF="../base/binary_search_tree_flatshort.html#f_has">has</A> (<B>Result</B>)
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Comparison</FONT>

    <A NAME="f_deep_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>; other: <B>like</B> arg #1): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`some'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> either both void</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> or attached to isomorphic object structures?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            shallow_implies_deep: <A HREF="../base/any_flatshort.html#f_standard_equal">standard_equal</A> (some, other) <B>implies</B> <B>Result</B>
            both_or_none_void: (some = <B>Void</B>) <B>implies</B> (<B>Result</B> = (other = <B>Void</B>))
            same_type: (<B>Result</B> <B>and</B> (some /= <B>Void</B>)) <B>implies</B> (other /= <B>Void</B> <B>and then</B> some.<A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other))
            symmetric: <B>Result</B> <B>implies</B> <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (other, some)
</A>
    <A NAME="f_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_equal">equal</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>; other: <B>like</B> arg #1): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`some'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> either both void or attached</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> to objects considered equal?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            definition: <B>Result</B> = (some = <B>Void</B> <B>and</B> other = <B>Void</B>) <B>or else</B> ((some /= <B>Void</B> <B>and</B> other /= <B>Void</B>) <B>and then</B> some.<A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (other))
</A>
    <A NAME="f_is_deep_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_is_deep_equal">is_deep_equal</A> (other: <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G]): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`Current'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> attached to isomorphic object structures?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            shallow_implies_deep: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other) <B>implies</B> <B>Result</B>
            same_type: <B>Result</B> <B>implies</B> <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
            symmetric: <B>Result</B> <B>implies</B> other.<A HREF="../base/any_flatshort.html#f_is_deep_equal">is_deep_equal</A> (<B>Current</B>)
</A>
    <A NAME="f_is_equal"><A HREF="../base/tree_flatshort.html#f_is_equal">is_equal</A> (other: <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G]): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Does </FONT>`other'<FONT COLOR="red"> contain the same elements?</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Reference or object equality,</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> based on </FONT><A HREF="../base/container_flatshort.html#f_object_comparison">object_comparison</A><FONT COLOR="red">.)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            symmetric: <B>Result</B> <B>implies</B> other.<A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (<B>Current</B>)
            consistent: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other) <B>implies</B> <B>Result</B>
</A>
    <A NAME="f_node_is_equal"><A HREF="../base/tree_flatshort.html#f_node_is_equal">node_is_equal</A> (other: <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G]): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is </FONT>`other'<FONT COLOR="red"> equal to Current?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            other_not_void: other /= <B>Void</B>
</A>
    <A NAME="f_standard_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_equal">standard_equal</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>; other: <B>like</B> arg #1): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are </FONT>`some'<FONT COLOR="red"> and </FONT>`other'<FONT COLOR="red"> either both void or attached to</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> field-by-field identical objects of the same type?</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Always uses default object comparison criterion.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            definition: <B>Result</B> = (some = <B>Void</B> <B>and</B> other = <B>Void</B>) <B>or else</B> ((some /= <B>Void</B> <B>and</B> other /= <B>Void</B>) <B>and then</B> some.<A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other))
</A>
    <A NAME="f_standard_is_equal"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other: <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G]): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is </FONT>`other'<FONT COLOR="red"> attached to an object of the same type</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> as current object, and field-by-field identical to it?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            same_type: <B>Result</B> <B>implies</B> <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
            symmetric: <B>Result</B> <B>implies</B> other.<A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (<B>Current</B>)
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Status report</FONT>

    <A NAME="f_changeable_comparison_criterion"><A HREF="../base/container_flatshort.html#f_changeable_comparison_criterion">changeable_comparison_criterion</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> May </FONT><A HREF="../base/container_flatshort.html#f_object_comparison">object_comparison</A><FONT COLOR="red"> be changed?</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Answer: yes by default.)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/container_flatshort.html">CONTAINER</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_child_after"><A HREF="../base/binary_tree_flatshort.html#f_child_after">child_after</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is there no valid child position to the right of cursor?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_child_before"><A HREF="../base/tree_flatshort.html#f_child_before">child_before</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is there no valid child position to the left of cursor?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_child_isfirst"><A HREF="../base/tree_flatshort.html#f_child_isfirst">child_isfirst</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is cursor under first child?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            not_is_leaf: <B>Result</B> <B>implies</B> <B>not</B> <A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A>
</A>
    <A NAME="f_child_islast"><A HREF="../base/tree_flatshort.html#f_child_islast">child_islast</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is cursor under last child?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            not_is_leaf: <B>Result</B> <B>implies</B> <B>not</B> <A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A>
</A>
    <A NAME="f_child_off"><A HREF="../base/tree_flatshort.html#f_child_off">child_off</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is there no current child?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_child_readable"><A HREF="../base/tree_flatshort.html#f_child_readable">child_readable</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is there a current </FONT><A HREF="../base/tree_flatshort.html#f_child_item">child_item</A><FONT COLOR="red"> to be read?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_child_writable"><A HREF="../base/tree_flatshort.html#f_child_writable">child_writable</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is there a current </FONT><A HREF="../base/tree_flatshort.html#f_child_item">child_item</A><FONT COLOR="red"> that may be modified?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_conforms_to"><A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (other: <A HREF="../base/any_flatshort.html">ANY</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Does type of current object conform to type</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of </FONT>`other'<FONT COLOR="red"> (as per Eiffel: The Language, chapter 13)?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
</A>
    <A NAME="f_has_both"><A HREF="../base/binary_tree_flatshort.html#f_has_both">has_both</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Has current node two children?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A>
            <B>Result</B> = (<A HREF="../base/binary_tree_flatshort.html#f_has_left">has_left</A> <B>and</B> <A HREF="../base/binary_tree_flatshort.html#f_has_right">has_right</A>)
</A>
    <A NAME="f_has_left"><A HREF="../base/binary_tree_flatshort.html#f_has_left">has_left</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Has current node a left child?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A>
            <B>Result</B> = (<A HREF="../base/binary_tree_flatshort.html#f_left_child">left_child</A> /= <B>Void</B>)
</A>
    <A NAME="f_has_none"><A HREF="../base/binary_tree_flatshort.html#f_has_none">has_none</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are there no children?</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Was declared in </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red"> as synonym of </FONT><A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_has_right"><A HREF="../base/binary_tree_flatshort.html#f_has_right">has_right</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Has current node a right child?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A>
            <B>Result</B> = (<A HREF="../base/binary_tree_flatshort.html#f_right_child">right_child</A> /= <B>Void</B>)
</A>
    <A NAME="f_is_empty"><A HREF="../base/tree_flatshort.html#f_is_empty">is_empty</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is structure empty of items?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_is_leaf"><A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are there no children?</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Was declared in </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red"> as synonym of </FONT><A HREF="../base/binary_tree_flatshort.html#f_has_none">has_none</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_is_root"><A HREF="../base/tree_flatshort.html#f_is_root">is_root</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is there no parent?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_is_sibling"><A HREF="../base/tree_flatshort.html#f_is_sibling">is_sibling</A> (other: <B>like</B> <A HREF="../base/binary_search_tree_flatshort.html#f_parent">parent</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Are current node and </FONT>`other'<FONT COLOR="red"> siblings?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            other_exists: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            not_root: <B>Result</B> <B>implies</B> <B>not</B> <A HREF="../base/tree_flatshort.html#f_is_root">is_root</A>
            other_not_root: <B>Result</B> <B>implies</B> <B>not</B> other.<A HREF="../base/tree_flatshort.html#f_is_root">is_root</A>
            same_parent: <B>Result</B> = <B>not</B> <A HREF="../base/tree_flatshort.html#f_is_root">is_root</A> <B>and</B> other.<A HREF="../base/tree_flatshort.html#f_parent">parent</A> = <A HREF="../base/binary_search_tree_flatshort.html#f_parent">parent</A>
</A>
    <A NAME="f_object_comparison"><A HREF="../base/container_flatshort.html#f_object_comparison">object_comparison</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A></A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Must search operations use </FONT><A HREF="../base/any_flatshort.html#f_equal">equal</A><FONT COLOR="red"> rather than </FONT>`='
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> for comparing references? (Default: no, use </FONT>`='<FONT COLOR="red">.)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/container_flatshort.html">CONTAINER</A><FONT COLOR="red">)</FONT>

    <A NAME="f_readable"><A HREF="../base/tree_flatshort.html#f_readable">readable</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A> <B>is</B> <B>True</B></A>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>

    <A NAME="f_readable_child"><A HREF="../base/tree_flatshort.html#f_readable_child">readable_child</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is there a current child to be read?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_same_type"><A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other: <A HREF="../base/any_flatshort.html">ANY</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is type of current object identical to type of </FONT>`other'<FONT COLOR="red">?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            definition: <B>Result</B> = (<A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (other) <B>and</B> other.<A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (<B>Current</B>))
</A>
    <A NAME="f_sorted"><A HREF="../base/binary_search_tree_flatshort.html#f_sorted">sorted</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is tree sorted?</FONT>
</A>
    <A NAME="f_sorted_and_less"><A HREF="../base/binary_search_tree_flatshort.html#f_sorted_and_less">sorted_and_less</A> (i: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is tree sorted and all its elements less then i</FONT>
</A>
    <A NAME="f_valid_cursor_index"><A HREF="../base/tree_flatshort.html#f_valid_cursor_index">valid_cursor_index</A> (i: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is </FONT>`i'<FONT COLOR="red"> correctly bounded for cursor movement?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            valid_cursor_index_definition: <B>Result</B> = (i &gt;= 0) <B>and</B> (i &lt;= <A HREF="../base/binary_tree_flatshort.html#f_child_capacity">child_capacity</A> + 1)
</A>
    <A NAME="f_writable"><A HREF="../base/tree_flatshort.html#f_writable">writable</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A> <B>is</B> <B>True</B></A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is there a current item that may be modified?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>

    <A NAME="f_writable_child"><A HREF="../base/tree_flatshort.html#f_writable_child">writable_child</A>: <A HREF="../base/boolean_flatshort.html">BOOLEAN</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Is there a current child that may be modified?</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Status setting</FONT>

    <A NAME="f_compare_objects"><A HREF="../base/container_flatshort.html#f_compare_objects">compare_objects</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Ensure that future search operations will use </FONT><A HREF="../base/any_flatshort.html#f_equal">equal</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> rather than </FONT>`='<FONT COLOR="red"> for comparing references.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/container_flatshort.html">CONTAINER</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/container_flatshort.html">CONTAINER</A>
            changeable_comparison_criterion: <A HREF="../base/container_flatshort.html#f_changeable_comparison_criterion">changeable_comparison_criterion</A>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/container_flatshort.html">CONTAINER</A>
            <A HREF="../base/container_flatshort.html#f_object_comparison">object_comparison</A>
</A>
    <A NAME="f_compare_references"><A HREF="../base/container_flatshort.html#f_compare_references">compare_references</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Ensure that future search operations will use </FONT>`='
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> rather than </FONT><A HREF="../base/any_flatshort.html#f_equal">equal</A><FONT COLOR="red"> for comparing references.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/container_flatshort.html">CONTAINER</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/container_flatshort.html">CONTAINER</A>
            changeable_comparison_criterion: <A HREF="../base/container_flatshort.html#f_changeable_comparison_criterion">changeable_comparison_criterion</A>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/container_flatshort.html">CONTAINER</A>
            reference_comparison: <B>not</B> <A HREF="../base/container_flatshort.html#f_object_comparison">object_comparison</A>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Cursor movement</FONT>

    <A NAME="f_child_back"><A HREF="../base/binary_tree_flatshort.html#f_child_back">child_back</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Move cursor to previous child.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_child_finish"><A HREF="../base/binary_tree_flatshort.html#f_child_finish">child_finish</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Move cursor to last child.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_child_forth"><A HREF="../base/binary_tree_flatshort.html#f_child_forth">child_forth</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Move cursor to next child.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_child_go_i_th"><A HREF="../base/binary_tree_flatshort.html#f_child_go_i_th">child_go_i_th</A> (i: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Move cursor to </FONT>`i'<FONT COLOR="red">-th child.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>ensure then</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            position: <A HREF="../base/binary_tree_flatshort.html#f_child_index">child_index</A> = i
</A>
    <A NAME="f_child_go_to"><A HREF="../base/binary_tree_flatshort.html#f_child_go_to">child_go_to</A> (p: <A HREF="../base/arrayed_list_cursor_flatshort.html">ARRAYED_LIST_CURSOR</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Move cursor to child remembered by </FONT>`p'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_child_start"><A HREF="../base/binary_tree_flatshort.html#f_child_start">child_start</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Move to first child.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_i_infix"><A HREF="../base/binary_search_tree_flatshort.html#f_i_infix">i_infix</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Apply node_action to every node's item</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> in tree, using infix order.</FONT>
</A>
    <A NAME="f_node_action"><A HREF="../base/binary_search_tree_flatshort.html#f_node_action">node_action</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Operation on node item,</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> to be defined by descendant classes.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Here it is defined as an empty operation.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Redefine this procedure in descendant classes if useful</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> operations are to be performed during traversals.</FONT>
</A>
    <A NAME="f_postorder"><A HREF="../base/binary_search_tree_flatshort.html#f_postorder">postorder</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Apply node_action to every node's item</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> in tree, using post-order.</FONT>
</A>
    <A NAME="f_preorder"><A HREF="../base/binary_search_tree_flatshort.html#f_preorder">preorder</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Apply </FONT><A HREF="../base/binary_search_tree_flatshort.html#f_node_action">node_action</A><FONT COLOR="red"> to every node's item</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> in tree, using pre-order.</FONT>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Element change</FONT>

    <A NAME="f_child_put"><A HREF="../base/binary_tree_flatshort.html#f_child_put">child_put</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Put </FONT>`v'<FONT COLOR="red"> at current child position.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Was declared in </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red"> as synonym of </FONT><A HREF="../base/binary_tree_flatshort.html#f_child_replace">child_replace</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            child_writable: <A HREF="../base/tree_flatshort.html#f_child_writable">child_writable</A>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            item_inserted: <A HREF="../base/tree_flatshort.html#f_child_item">child_item</A> = v
</A>
    <A NAME="f_child_replace"><A HREF="../base/binary_tree_flatshort.html#f_child_replace">child_replace</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Put </FONT>`v'<FONT COLOR="red"> at current child position.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Was declared in </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red"> as synonym of </FONT><A HREF="../base/binary_tree_flatshort.html#f_child_put">child_put</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            child_writable: <A HREF="../base/tree_flatshort.html#f_child_writable">child_writable</A>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            item_inserted: <A HREF="../base/tree_flatshort.html#f_child_item">child_item</A> = v
</A>
    <A NAME="f_extend"><A HREF="../base/binary_search_tree_flatshort.html#f_extend">extend</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Put </FONT>`v'<FONT COLOR="red"> at proper position in tree</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (unless </FONT>`v'<FONT COLOR="red"> exists already).</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Reference or object equality,</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> based on </FONT><A HREF="../base/container_flatshort.html#f_object_comparison">object_comparison</A><FONT COLOR="red">.)</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Was declared in </FONT><A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A><FONT COLOR="red"> as synonym of </FONT><A HREF="../base/binary_search_tree_flatshort.html#f_put">put</A><FONT COLOR="red">.</FONT>
        <B>require</B>
            new_item_exists: v /= <B>Void</B>
        <B>ensure</B>
            item_inserted: <A HREF="../base/binary_search_tree_flatshort.html#f_has">has</A> (v)
</A>
    <A NAME="f_fill"><A HREF="../base/tree_flatshort.html#f_fill">fill</A> (other: <A HREF="../base/tree_flatshort.html">TREE</A> [G])
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Fill with as many items of </FONT>`other'<FONT COLOR="red"> as possible.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> The representations of </FONT>`other'<FONT COLOR="red"> and current node</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> need not be the same.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_put"><A HREF="../base/binary_search_tree_flatshort.html#f_put">put</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Put </FONT>`v'<FONT COLOR="red"> at proper position in tree</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (unless </FONT>`v'<FONT COLOR="red"> exists already).</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Reference or object equality,</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> based on </FONT><A HREF="../base/container_flatshort.html#f_object_comparison">object_comparison</A><FONT COLOR="red">.)</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Was declared in </FONT><A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A><FONT COLOR="red"> as synonym of </FONT><A HREF="../base/binary_search_tree_flatshort.html#f_extend">extend</A><FONT COLOR="red">.</FONT>
        <B>require</B>
            new_item_exists: v /= <B>Void</B>
        <B>ensure</B>
            item_inserted: <A HREF="../base/binary_search_tree_flatshort.html#f_has">has</A> (v)
</A>
    <A NAME="f_put"><A HREF="../base/cell_flatshort.html#f_put">bt_put</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Make </FONT>`v'<FONT COLOR="red"> the cell's </FONT><A HREF="../base/cell_flatshort.html#f_item">item</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Was declared in </FONT><A HREF="../base/cell_flatshort.html">CELL</A><FONT COLOR="red"> as synonym of </FONT><A HREF="../base/cell_flatshort.html#f_replace">replace</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/cell_flatshort.html">CELL</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            is_writable: <A HREF="../base/tree_flatshort.html#f_writable">writable</A>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            item_inserted: <A HREF="../base/cell_flatshort.html#f_item">item</A> = v
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/cell_flatshort.html">CELL</A>
            item_inserted: <A HREF="../base/cell_flatshort.html#f_item">item</A> = v
</A>
    <A NAME="f_put_child"><A HREF="../base/binary_tree_flatshort.html#f_put_child">put_child</A> (n: <B>like</B> <A HREF="../base/binary_tree_flatshort.html#f_new_tree">new_tree</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Put </FONT>`n'<FONT COLOR="red"> at current child position.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Was declared in </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red"> as synonym of </FONT><A HREF="../base/binary_tree_flatshort.html#f_replace_child">replace_child</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            non_void_argument: n /= <B>Void</B>
</A>
    <A NAME="f_replace"><A HREF="../base/cell_flatshort.html#f_replace">replace</A> (v: <B>like</B> <A HREF="../base/cell_flatshort.html#f_item">item</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Make </FONT>`v'<FONT COLOR="red"> the cell's </FONT><A HREF="../base/cell_flatshort.html#f_item">item</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Was declared in </FONT><A HREF="../base/cell_flatshort.html">CELL</A><FONT COLOR="red"> as synonym of </FONT><A HREF="../base/binary_search_tree_flatshort.html#f_put">put</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/cell_flatshort.html">CELL</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            is_writable: <A HREF="../base/tree_flatshort.html#f_writable">writable</A>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            item_inserted: <A HREF="../base/cell_flatshort.html#f_item">item</A> = v
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/cell_flatshort.html">CELL</A>
            item_inserted: <A HREF="../base/cell_flatshort.html#f_item">item</A> = v
</A>
    <A NAME="f_replace_child"><A HREF="../base/binary_tree_flatshort.html#f_replace_child">replace_child</A> (n: <B>like</B> <A HREF="../base/binary_tree_flatshort.html#f_new_tree">new_tree</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Put </FONT>`n'<FONT COLOR="red"> at current child position.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Was declared in </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red"> as synonym of </FONT><A HREF="../base/binary_tree_flatshort.html#f_put_child">put_child</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            writable_child: <A HREF="../base/tree_flatshort.html#f_writable_child">writable_child</A>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            child_replaced: <A HREF="../base/binary_tree_flatshort.html#f_child">child</A> = n
</A>
    <A NAME="f_sprout"><A HREF="../base/tree_flatshort.html#f_sprout">sprout</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Make current node a root.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Removal</FONT>

    <A NAME="f_child_remove"><A HREF="../base/binary_tree_flatshort.html#f_child_remove">child_remove</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Remove current child.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_forget_left"><A HREF="../base/binary_tree_flatshort.html#f_forget_left">forget_left</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Forget left sibling.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_forget_right"><A HREF="../base/binary_tree_flatshort.html#f_forget_right">forget_right</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Forget right sibling.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_prune"><A HREF="../base/binary_tree_flatshort.html#f_prune">prune</A> (n: <B>like</B> <A HREF="../base/binary_tree_flatshort.html#f_new_tree">new_tree</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Prune </FONT>`n'<FONT COLOR="red"> from child nodes.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            is_child: n.<A HREF="../base/tree_flatshort.html#f_parent">parent</A> = <B>Current</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            n_is_root: n.<A HREF="../base/tree_flatshort.html#f_is_root">is_root</A>
</A>
    <A NAME="f_wipe_out"><A HREF="../base/binary_tree_flatshort.html#f_wipe_out">wipe_out</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Remove all children.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            is_leaf: <A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Transformation</FONT>

    <A NAME="f_sort"><A HREF="../base/binary_search_tree_flatshort.html#f_sort">sort</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Sort tree.</FONT>
        <B>ensure</B>
            is_sorted: <A HREF="../base/binary_search_tree_flatshort.html#f_sorted">sorted</A>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Conversion</FONT>

    <A NAME="f_binary_representation"><A HREF="../base/tree_flatshort.html#f_binary_representation">binary_representation</A>: <A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A> [G]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Convert to binary tree representation:</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> first child becomes left child,</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> right sibling becomes right child.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            result_is_root: <B>Result</B>.<A HREF="../base/tree_flatshort.html#f_is_root">is_root</A>
            result_has_no_right_child: <B>not</B> <B>Result</B>.<A HREF="../base/binary_tree_flatshort.html#f_has_right">has_right</A>
</A>
    <A NAME="f_linear_representation"><A HREF="../base/tree_flatshort.html#f_linear_representation">linear_representation</A>: <A HREF="../base/linear_flatshort.html">LINEAR</A> [G]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Representation as a linear structure</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Duplication</FONT>

    <A NAME="f_copy"><A HREF="../base/tree_flatshort.html#f_copy">copy</A> (other: <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G])
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Copy contents from </FONT>`other'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/tree_flatshort.html">TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
            type_identity: <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            is_equal: <A HREF="../base/tree_flatshort.html#f_is_equal">is_equal</A> (other)
</A>
    <A NAME="f_deep_copy"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_deep_copy">deep_copy</A> (other: <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G])
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Effect equivalent to that of:</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red">		</FONT><A HREF="../base/tree_flatshort.html#f_copy">copy</A><FONT COLOR="red"> (</FONT>`other'<FONT COLOR="red"> . </FONT><A HREF="../base/any_flatshort.html#f_deep_twin">deep_twin</A><FONT COLOR="red">)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            deep_equal: <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (<B>Current</B>, other)
</A>
    <A NAME="f_deep_twin"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_deep_twin">deep_twin</A>: <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New object structure recursively duplicated from Current.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            deep_twin_not_void: <B>Result</B> /= <B>Void</B>
            deep_equal: <A HREF="../base/any_flatshort.html#f_deep_equal">deep_equal</A> (<B>Current</B>, <B>Result</B>)
</A>
    <A NAME="f_duplicate"><A HREF="../base/binary_tree_flatshort.html#f_duplicate">duplicate</A> (n: <A HREF="../base/integer_32_flatshort.html">INTEGER_32</A>): <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Copy of sub-tree beginning at cursor position and</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> having min (</FONT>`n'<FONT COLOR="red">, </FONT><A HREF="../base/binary_tree_flatshort.html#f_arity">arity</A><FONT COLOR="red"> - </FONT><A HREF="../base/binary_tree_flatshort.html#f_child_index">child_index</A><FONT COLOR="red"> + 1)</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> children.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
            not_child_off: <B>not</B> <A HREF="../base/tree_flatshort.html#f_child_off">child_off</A>
            valid_sublist: n &gt;= 0
</A>
    <A NAME="f_duplicate_all"><A HREF="../base/binary_tree_flatshort.html#f_duplicate_all">duplicate_all</A>: <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G]
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_standard_copy"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_copy">standard_copy</A> (other: <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G])
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Copy every field of </FONT>`other'<FONT COLOR="red"> onto corresponding field</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of current object.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>require</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            other_not_void: other /= <B>Void</B>
            type_identity: <A HREF="../base/any_flatshort.html#f_same_type">same_type</A> (other)
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            is_standard_equal: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (other)
</A>
    <A NAME="f_standard_twin"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_standard_twin">standard_twin</A>: <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New object field-by-field identical to </FONT>`other'<FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Always uses default copying semantics.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            standard_twin_not_void: <B>Result</B> /= <B>Void</B>
            equal: <A HREF="../base/any_flatshort.html#f_standard_equal">standard_equal</A> (<B>Result</B>, <B>Current</B>)
</A>
    <A NAME="f_twin"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_twin">twin</A>: <A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New object equal to </FONT>`Current'
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> </FONT><A HREF="../base/any_flatshort.html#f_twin">twin</A><FONT COLOR="red"> calls </FONT><A HREF="../base/tree_flatshort.html#f_copy">copy</A><FONT COLOR="red">; to change copying/twining semantics, redefine </FONT><A HREF="../base/tree_flatshort.html#f_copy">copy</A><FONT COLOR="red">.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            twin_not_void: <B>Result</B> /= <B>Void</B>
            is_equal: <B>Result</B>.<A HREF="../base/any_flatshort.html#f_is_equal">is_equal</A> (<B>Current</B>)
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Basic operations</FONT>

    <A NAME="f_default"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_default">default</A>: ?<A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A> [G]
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Default value of object's type</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_default_pointer"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_default_pointer">default_pointer</A>: <A HREF="../base/pointer_flatshort.html">POINTER</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Default value of type </FONT>`POINTER'
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Avoid the need to write </FONT>`p'<FONT COLOR="red">.</FONT><A HREF="../base/any_flatshort.html#f_default">default</A><FONT COLOR="red"> for</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> some </FONT>`p'<FONT COLOR="red"> of type </FONT>`POINTER'<FONT COLOR="red">.)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_default_rescue"><A HREF="../base/any_flatshort.html#f_default_rescue">default_rescue</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Process exception for routines with no Rescue clause.</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> (Default: do nothing.)</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_do_nothing"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_do_nothing">do_nothing</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Execute a null action.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Output</FONT>

    <A NAME="f_io"><A HREF="../base/any_flatshort.html#f_io">io</A>: <A HREF="../base/std_files_flatshort.html">STD_FILES</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Handle to standard file setup</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            io_not_void: <B>Result</B> /= <B>Void</B>
</A>
    <A NAME="f_out"><A HREF="../base/any_flatshort.html#f_out">out</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New string containing terse printable representation</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of current object</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            out_not_void: <B>Result</B> /= <B>Void</B>
</A>
    <A NAME="f_print"><A HREF="../base/any_flatshort.html#f_print">print</A> (some: ?<A HREF="../base/any_flatshort.html">ANY</A>)
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Write terse external representation of </FONT>`some'
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> on standard output.</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
</A>
    <A NAME="f_tagged_out"><B>frozen</B> <A HREF="../base/any_flatshort.html#f_tagged_out">tagged_out</A>: <A HREF="../base/string_8_flatshort.html">STRING_8</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> New string containing terse printable representation</FONT>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> of current object</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            tagged_out_not_void: <B>Result</B> /= <B>Void</B>
</A>    
<B>feature</B> <FONT COLOR="red">--</FONT><FONT COLOR="red"> Platform</FONT>

    <A NAME="f_operating_environment"><A HREF="../base/any_flatshort.html#f_operating_environment">operating_environment</A>: <A HREF="../base/operating_environment_flatshort.html">OPERATING_ENVIRONMENT</A>
            <FONT COLOR="red">--</FONT><FONT COLOR="red"> Objects available from the operating system</FONT>
            <FONT COLOR="red">--</FONT> <FONT COLOR="red">(from </FONT><A HREF="../base/any_flatshort.html">ANY</A><FONT COLOR="red">)</FONT>
        <B>ensure</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
            operating_environment_not_void: <B>Result</B> /= <B>Void</B>
</A>    
<B>invariant</B>
        <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/binary_tree_flatshort.html">BINARY_TREE</A>
    tree_is_binary: <A HREF="../base/binary_tree_flatshort.html#f_child_capacity">child_capacity</A> = 2

        <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/any_flatshort.html">ANY</A>
    reflexive_equality: <A HREF="../base/any_flatshort.html#f_standard_is_equal">standard_is_equal</A> (<B>Current</B>)
    reflexive_conformance: <A HREF="../base/any_flatshort.html#f_conforms_to">conforms_to</A> (<B>Current</B>)

        <FONT COLOR="red">--</FONT> <FONT COLOR="red">from </FONT><A HREF="../base/tree_flatshort.html">TREE</A>
    tree_consistency: <A HREF="../base/tree_flatshort.html#f_child_readable">child_readable</A> <B>implies</B> ({c: <B>like</B> child} <A HREF="../base/binary_tree_flatshort.html#f_child">child</A> <B>and then</B> c.<A HREF="../base/binary_search_tree_flatshort.html#f_parent">parent</A> = <B>Current</B>)
    leaf_definition: <A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A> = (<A HREF="../base/binary_tree_flatshort.html#f_arity">arity</A> = 0)
    child_off_definition: <A HREF="../base/tree_flatshort.html#f_child_off">child_off</A> = <A HREF="../base/tree_flatshort.html#f_child_before">child_before</A> <B>or</B> <A HREF="../base/binary_tree_flatshort.html#f_child_after">child_after</A>
    child_before_definition: <A HREF="../base/tree_flatshort.html#f_child_before">child_before</A> = (<A HREF="../base/binary_tree_flatshort.html#f_child_index">child_index</A> = 0)
    child_isfirst_definition: <A HREF="../base/tree_flatshort.html#f_child_isfirst">child_isfirst</A> = (<B>not</B> <A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A> <B>and</B> <A HREF="../base/binary_tree_flatshort.html#f_child_index">child_index</A> = 1)
    child_islast_definition: <A HREF="../base/tree_flatshort.html#f_child_islast">child_islast</A> = (<B>not</B> <A HREF="../base/binary_tree_flatshort.html#f_is_leaf">is_leaf</A> <B>and</B> <A HREF="../base/binary_tree_flatshort.html#f_child_index">child_index</A> = <A HREF="../base/binary_tree_flatshort.html#f_child_capacity">child_capacity</A>)
    child_after_definition: <A HREF="../base/binary_tree_flatshort.html#f_child_after">child_after</A> = (<A HREF="../base/binary_tree_flatshort.html#f_child_index">child_index</A> &gt;= <A HREF="../base/binary_tree_flatshort.html#f_child_capacity">child_capacity</A> + 1)

<B>indexing</B>
    library: "EiffelBase: Library of reusable components for Eiffel."
    copyright: "Copyright (c) 1984-2008, Eiffel Software and others"
    license: "Eiffel Forum License v2 (see <a href="http://www.eiffel.com/licensing/forum.txt">http://www.eiffel.com/licensing/forum.txt</a>)"
    source: "[
        Eiffel Software
        356 Storke Road, Goleta, CA 93117 USA
        Telephone 805-685-1006, Fax 805-685-6869
        Website <a href="http://www.eiffel.com">http://www.eiffel.com</a>
        Customer support <a href="http://support.eiffel.com">http://support.eiffel.com</a>
    ]"

<B>end</B> <FONT COLOR="red">--</FONT> <FONT COLOR="red">class </FONT><A HREF="../base/binary_search_tree_flatshort.html">BINARY_SEARCH_TREE</A><TABLE BORDER="1" ALIGN="CENTER"><TR><TD><A HREF="../class_list.html">Classes</A></TD><TD><A HREF="../cluster_list.html">Clusters</A></TD><TD><A HREF="../cluster_hierarchy.html">Cluster hierarchy</A></TD><TD><A HREF="binary_search_tree_chart.html">Chart</A></TD><TD><A HREF="binary_search_tree_links.html">Relations</A></TD><TD>Flat contracts</TD></TR></TABLE></PRE>
<P ALIGN="CENTER"> &#045;&#045; Generated by ISE Eiffel &#045;&#045 </P>
<P ALIGN="CENTER">For more details: <A HREF="http://www.eiffel.com">www.eiffel.com</A></P>
</BODY>
</HTML>

